package info.opensoaring.api.igc;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;

public class FlightDeclaration implements Serializable {

    private static final long serialVersionUID = -9064907051320696934L;

    private Date date;

    private Date flightDate;

    private int taskNumber;

    private int numberTurnpoints;

    private Fix takeoff;

    private Fix start;

    private ArrayList<Fix> turnPoints;

    private Fix finish;

    private Fix landing;

    public FlightDeclaration() {
	this(null, null, new ArrayList<Fix>(), null, null);
    }

    public FlightDeclaration(Fix takeoff, Fix start, ArrayList<Fix> turnPoints, Fix finish,
	    Fix landing) {
	this.takeoff = takeoff;
	this.start = start;
	this.turnPoints = turnPoints;
	this.finish = finish;
	this.landing = landing;
    }

    public Date getDate() {
	return date;
    }

    public void setDate(Date date) {
	this.date = date;
    }

    public Date getFlightDate() {
	return flightDate;
    }

    public void setFlightDate(Date flightDate) {
	this.flightDate = flightDate;
    }

    public int getTaskNumber() {
	return taskNumber;
    }

    public void setTaskNumber(int taskNumber) {
	this.taskNumber = taskNumber;
    }

    public int getNumberTurnpoints() {
	return numberTurnpoints;
    }

    public void setNumberTurnpoints(int numberTurnpoints) {
	this.numberTurnpoints = numberTurnpoints;
    }

    public Fix getTakeoff() {
	return takeoff;
    }

    public void setTakeoff(Fix takeoff) {
	this.takeoff = takeoff;
    }

    public Fix getStart() {
	return start;
    }

    public void setStart(Fix start) {
	this.start = start;
    }

    public ArrayList<Fix> getTurnPoints() {
	return turnPoints;
    }

    public void setTurnPoints(ArrayList<Fix> turnPoints) {
	this.turnPoints = turnPoints;
    }

    public Fix getFinish() {
	return finish;
    }

    public void setFinish(Fix finish) {
	this.finish = finish;
    }

    public Fix getLanding() {
	return landing;
    }

    public void setLanding(Fix landing) {
	this.landing = landing;
    }

    public String toString() {
	return "{Date=" + getDate() + ",FlightDate=" + getFlightDate() + ",TaskNumber="
		+ getTaskNumber() + ",NumberTurnpoints=" + getNumberTurnpoints() + ",Takeoff="
		+ getTakeoff() + ",Start=" + getStart() + ",TurnPoints=" + getTurnPoints()
		+ ",Finish=" + getFinish() + ",Landing=" + getLanding() + "}";
    }

}
